package com.leetcodecn.progrems;


public class LengthOfLongestSubstring_003 {
    public static void main(String[] args) {
        String str = new String("au");

        int len = lengthOfLongestSubstring(str);
        System.out.println(len);
    }

    public static int lengthOfLongestSubstring(String s) {
        int len = 0;
        int left = 0;
        String[] strs = s.split("");
        //存放字符串
        StringBuilder sb = new StringBuilder();

        //存放字符串
//        ArrayList<String> arr = new ArrayList<>();
        //字符长度为0，结果为0
        if(s.equals("")) return  0;
//        else if(s.length()==1) return 1;
        for (int i = 0; i < strs.length; i++) {
            //有重复字符出现，左侧范围加一
            left = Math.max(left++, sb.lastIndexOf(strs[i])+1);
            //添加下一个字符
            sb.append(strs[i]);
            len = Math.max(len, i-left+1);
        }

        return len;

//        int i = 0;
//        int flag = 0;
//        int length = 0;
//        int result = 0;
//        while (i < s.length()) {
//            int pos = s.indexOf(s.charAt(i),flag);
//            if (pos < i) {
//                if (length > result) {
//                    result = length;
//                }
//                if (result >= s.length() - pos - 1) {
//                    return result;
//                }
//                length = i - pos - 1;
//                flag = pos + 1;
//            }
//            length++;
//            i++;
//        }
//        return length;
    }
}
